home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-07-30 | 1.6 KB | 79 lines | [TEXT/PJMM] |
- program Mondrian;
- const
- BASE_RES_ID = 400;
-
- var
- gDrawWindow: WindowPtr;
- gFillColor: LONGINT;
-
-
- {--------------------------------> Randomize <---}
-
- function Randomize (range: INTEGER): INTEGER;
- var
- rawResult: LONGINT;
- begin
- rawResult := Random;
- rawResult := abs(rawResult);
-
- Randomize := (rawResult * range) div 32768;
- end;
-
-
- {--------------------------------> RandomRect <---}
-
- procedure RandomRect (var myRect: Rect; boundingWindow: WindowPtr);
- begin
- myRect.left := Randomize(boundingWindow^.portRect.right - boundingWindow^.portRect.left);
- myRect.right := Randomize(boundingWindow^.portRect.right - boundingWindow^.portRect.left);
- myRect.top := Randomize(boundingWindow^.portRect.bottom - boundingWindow^.portRect.top);
- myRect.bottom := Randomize(boundingWindow^.portRect.bottom - boundingWindow^.portRect.top);
- end;
-
-
- {--------------------------------> DrawRandomRect <---}
-
- procedure DrawRandomRect;
- var
- myRect: Rect;
- begin
- RandomRect(myRect, gDrawWindow);
- ForeColor(gFillColor);
- PaintOval(myRect);
- end;
-
-
- {--------------------------------> MainLoop <---}
-
- procedure MainLoop;
- begin
- GetDateTime(randSeed);
- gFillColor := blackColor;
-
- while (not Button) do
- begin
- DrawRandomRect;
- if (gFillColor = blackColor) then
- gFillColor := whiteColor
- else
- gFillColor := blackColor
- end;
- end;
-
-
- {--------------------------------> WindowInit <---}
-
- procedure WindowInit;
- begin
- gDrawWindow := GetNewWindow(BASE_RES_ID, nil, WindowPtr(-1));
- ShowWindow(gDrawWindow);
- SetPort(gDrawWindow);
- end;
-
-
- {--------------------------------> Mondrian <---}
-
- begin
- WindowInit;
- MainLoop;
- end.